<?
	function CleanSQLInjection($string)
	{
		$string = strip_tags($string);
		
		if(get_magic_quotes_gpc())  // prevents duplicate backslashes
		{
			$string = stripslashes($string);
		}
		
		$badWords = array("/delete/i", "/update/i","/union/i","/insert/i","/drop/i","/http/i","/--/i");
		$string = preg_replace($badWords, "", $string);
		
		/*if(!is_numeric($string))
		{
			$string = mysql_real_escape_string($string);
		}*/
		
		return $string;
	}
	function getRemoteIPAddress(){
		$ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
		return $ip;
	}
	  
	/* If your visitor comes from proxy server you have use another function
	to get a real IP address: */
	
	function getRealIPAddress(){  
		if(!empty($_SERVER['HTTP_CLIENT_IP'])){
			//check ip from share internet
			$ip = $_SERVER['HTTP_CLIENT_IP'];
		}else if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
			//to check ip is pass from proxy
			$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
		}else{
			$ip = $_SERVER['REMOTE_ADDR'];
		}
		return $ip;
	}
	function ResultChargingVNPT($rs)
	{
		$str = '';
		switch ($rs) {
			case 0:
				$str = "Giao dịch thất bại";
				break;
			case 1:
				$str = "Giao dịch thành công";
				break;
			case 3:
				$str = "Kiểm tra lại session ID";
				break;
			case 4:
				$str = "Kiểm tra lại mã thẻ VNPT";
				break;
			case 5:
				$str = "Nhập sai mã thẻ quá 5 lần";
				break;	
			case 7:
				$str = "Session hết hạn";
				break;
			case 8:
				$str = "Kiểm tra lại IP Client";
				break;
			case 9:
				$str = "Tạm thời khóa kênh VMS";
				break;
			case 10:
				$str = "Partner khóa các giao dịch nạp tiền, thực hiện lại giao dịch sau 2-3 phút";
				break;
			case 11:
				$str = "Kết nối nhà cung cấp tạm thời bị gián đoạn";
				break;
			case 12:
				$str = "Trùng Transaction ID";
				break;	
			case 13:
				$str = "Hệ thống tạm thời bận";
				break;	
			case -2:
				$str = "Kiểm tra mã thẻ với nhà cung cấp dịch vụ Thẻ đã bị khóa.";
				break;	
			case -3:
				$str = "Hết hạn sử dụng thẻ.";
				break;	
			case 50:
				$str = "Thẻ đã sử dụng hoặc không tồn tại.";
				break;								
			case 51:
				$str = "Số Seri thẻ không đúng.";
				break;	
			case 52:
				$str = "Mã thẻ và Seri không khớp";
				break;	
			case 53:
				$str = "Số Seri hoặc mã thẻ không đúng";
				break;	
			case 55:
				$str = "Sau 24h thẻ được kích hoạt lại";
				break;	
			case 56:
				$str = "Tạm thời bị khóa do Charging sai nhiều lần.";
				break;		
			case 59:
				$str = "Kiểm tra lại mã thẻ với nhà cung cấp dịch vụ Viettel";
				break;	
			case 63:
				$str = "Kiểm tra lại Transaction của giao dịch cần tìm kiếm";
				break;	
			case 64:
				$str = "Kiểm tra lại dữ liệu mã hóa";
				break;
			case 99:
				$str = "Chưa nhận được kết quả trả về từ VNPT EPAY";
				break;
			default:
      			$str = "Mã lỗi: ".$rs;			
		}
		
		return $str;
	}
	function ResultChangeCardToGloden($rs)
	{
		if($rs)
			return ($rs/40);
	}	
	function KMChangeCard($rs, $tyle)
	{
		return ResultChangeCardToGloden($rs)*$tyle;
	}	
	function CheckLoginGame()
	{
		if(isset($_COOKIE['username']) && $_COOKIE['username'] !='')	
		{
			return '1';
		}
		else
		{
			header('Location: index.php?do=player&act=login');	
		}
	}
	function CheckBaoTri()
	{
		if(isset($_COOKIE['baotri']) && $_COOKIE['baotri'] !='')	
		{
			return '1';
		}
		else
		{
			header('Location: index.php?do=player&act=baotri');	
		}
	}
	function plpage($sqlstmt,$page,$set_per_page)
	{
		global $db,$do,$set_per_page;
	
		if (!$set_per_page) $set_per_page=$set_per_page;
	
		$result = $db->query($sqlstmt);
		$rows = $db->numRows($result);
		$p=ceil($rows/$set_per_page);
	
		$str='';
		if($p<=1) return $str;
	
		if ($p) $str = '<ul class="pagination">';
	
		$first = 0; $last=0;
		$j=1; $k=$p;
		if (false&&$first){
				$query_str = explode("&page=", $_SERVER['QUERY_STRING']);
		}
		if ($page>1){
				$pageprev=$page-1;
				$query_str = explode("&page=", $_SERVER['QUERY_STRING']);
				$str .= '<li class="First"><a href="'.$_SERVER['SCRIPT_NAME'].'?'.$query_str[0]."&page=$pageprev\">Prev </a></li>";
		}
		
		
		for($i=1;$i<=$k;$i++){
			$first = ' class="First"';
			if($i>1)
				$first = '';
			if ($i==$page)
				$str .= "<li$first><a href='#' class='active'>$i</a></li>";
			else {
				$query_str = explode("&page=", $_SERVER['QUERY_STRING']);
				$str .= "<li$first><a href=\"".$_SERVER['SCRIPT_NAME']."?".$query_str[0]."&page=$i\">$i</a></li>";
			}
		}
		
		if ($page<$p){
				$pagenext=$page+1;
				$query_str = explode("&page=", $_SERVER['QUERY_STRING']);
				$str .= '<li><a href="'.$_SERVER['SCRIPT_NAME'].'?'.$query_str[0]."&page=$pagenext\"> Next</a></li>";
		}
		
		if (false&&$last){
			$query_str = explode("&page=", $_SERVER['QUERY_STRING']);
		}
		$str .= '</u>';
		return $str;
	}
	function sqlmod($sqlstmt,$page,$set_per_page){ //modified sql query danh cho phan trang
		global $set_per_page;
		$from = ($page-1)*$set_per_page;
		return $sqlstmt." LIMIT ".$from." ,".$set_per_page;
	}
	/**
	Validate an email address.
	Provide email address (raw input)
	Returns true if the email address has the email 
	address format and the domain exists.
	*/
	function validEmail($email)
	{
	   $isValid = true;
	   $atIndex = strrpos($email, "@");
	   if (is_bool($atIndex) && !$atIndex)
	   {
		  $isValid = false;
	   }
	   else
	   {
		  $domain = substr($email, $atIndex+1);
		  $local = substr($email, 0, $atIndex);
		  $localLen = strlen($local);
		  $domainLen = strlen($domain);
		  if ($localLen < 1 || $localLen > 64)
		  {
			 // local part length exceeded
			 $isValid = false;
		  }
		  else if ($domainLen < 1 || $domainLen > 255)
		  {
			 // domain part length exceeded
			 $isValid = false;
		  }
		  else if ($local[0] == '.' || $local[$localLen-1] == '.')
		  {
			 // local part starts or ends with '.'
			 $isValid = false;
		  }
		  else if (preg_match('/\\.\\./', $local))
		  {
			 // local part has two consecutive dots
			 $isValid = false;
		  }
		  else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain))
		  {
			 // character not valid in domain part
			 $isValid = false;
		  }
		  else if (preg_match('/\\.\\./', $domain))
		  {
			 // domain part has two consecutive dots
			 $isValid = false;
		  }
		  else if
	(!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/',
					 str_replace("\\\\","",$local)))
		  {
			 // character not valid in local part unless 
			 // local part is quoted
			 if (!preg_match('/^"(\\\\"|[^"])+"$/',
				 str_replace("\\\\","",$local)))
			 {
				$isValid = false;
			 }
		  }
		  if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A")))
		  {
			 // domain not found in DNS
			 $isValid = false;
		  }
	   }
	   return $isValid;
	}
	function GetClean($name)
	{
		$value = isset($_GET[$name])?$_GET[$name]:'';
		
		if($value)
			return $value;
		return '';	
	}
	function PostClean($name)
	{
		$value = isset($_POST[$name])?$_POST[$name]:'';
		
		if($value)
			return $value;
		return '';	
	}
?>